In conventional computer system applications, data from a data source is rendered to an interface according to a presentation format or schema. In a common data binding method, a client application or system receives data of a known format from a data source, such as a database or a database management system. The client and the data source are each programmed in accordance with a common data schema. The client renders the data to a user, for example, via a user interface such as a display, by creating a presentation language representation of the data. The data presented to the client is always in the same format, thus allowing the client to render the data to the display in a predictable fashion.
This data transfer methodology provides a binding between a single client and a single data source. Although the client may buffer the data from the data source separately from display format information, the presentation to the user is not dynamic. Thus, where the data source format information changes, the client system needs to be reconfigured as well. Likewise, to bind the client to another data source, new code is required on the client side, in order to incorporate a different data format or schema. Thus, the data binding method does not provide for dynamic presentation of data from a changing data source, or from a plurality of disparate data sources.
Another data transfer methodology involves a thin client or three-tiered approach. In a typical situation, a user accesses a web site (e.g., the middle tier) using a browser, and performs a data search. The web site server accesses a data source, and obtains search results therefrom. The data source provides the search results to the web site in a known data format or schema, which the web site then formats for display purposes. The web site then creates a presentation language representation of the data from the data source, which may then be provided to the browser. For example, the web site may create a hypertext markup language (HTML) file or document, which is then sent to the browser for display to the user.
The browser thus does not receive data separate from the display formatting. The client browser is a thin entity, since it performs no formatting tasks, whereas the middle tier or web site server creates the presentation language representation of each page of data sent to the browser. Moreover, the thin client approach does not allow the user to buffer or accumulate the data underlying the presentation language representation. Instead, the browser can only buffer the HTML or other presentation language files or pages received from the web page.
Another limitation of the three-tiered approach is encountered where large amounts of data are accessed. Some data sources may contain large amounts of data or information. For example, some databases accessible to users of the Internet contain millions of records. Where a user requests data via a web site from such a large data source, the web site server creates a presentation language representation (e.g., HTML file) of the entire search result set from the data source, which must then be downloaded to the user's computer via the browser. Unfortunately, Internet users may have to wait for large file downloads to complete before being able to access the desired data. This is inefficient where, for example, a user wishes to access one or a small number of records in a huge database or other data source. Alternatively, the system may page the data, but the requests are explicit to the user.
A database is a collection of related data that may be stored on a memory or storage medium as part of a data source system. Data in the database is commonly organized in a two-dimensional row and column form, where each row is a record with elements in one or more columns. A data record is a row of data in the table that is identified by a unique record identifier. A field is a data subdivision of a record to the extent that a column of data in the database represents the same field for each record in the database. Each field in a record is a data element, which may be identified by a unique field name, and a field name remains the same for the same field in each record of a table in the database. Therefore, a specific data element in a database table is referenced by identifying a record identifier and a field name.
Display of data records to a data consumer is typically accomplished according to a known format for a particular data type being displayed. Some data records may be longer than others, some may be images, some may be text, etc. Many different data types and desirable display formats are possible. HyperText Markup Language (HTML) is a document format used on the World Wide Web. Web pages are built with HTML tags, or codes, embedded in the text. HTML defines the page layout, fonts and graphic elements as well as hypertext links to other documents on the Web. Hypertext is a linkage between related text. Conventional web browsers communicate with web servers via the Transmission Control Protocol/Internet Protocol (TCP/IP). The browser sends HyperText Transfer Protocol (HTTP) requests to the web site server, which responds with HTML pages and possibly additional programs in the form of ActiveX controls or Java applets.
Conventional methodologies and systems for data transfer thus fail to provide dynamic presentation of data from a changing source, along with data separation from display information and buffering. Data binding methods are limited to a single source for each client, and require recoding to bind a client to another data source unless the data format is the same. The binding between a client and a data source is thus not reusable. Three-tiered approach may allow dynamic presentation. However, this method requires the user to download the entire set of data, and provides no separation of data and display format information, thus preventing caching of data by the client or user. In addition, the three-tiered approach requires the creation of the presentation language representations to be accomplished by the middle tier. Thus, there remains a need for data transfer systems and methodologies which provide for dynamic presentation of data from data sources with an indeterminate data format, which is capable of being bound to different data sources, which provides separation of data from display information, and which allows the creation of presentation language representations of the data to be performed outside of the data provider.